package com.aaa.service.impl;

import cn.hutool.core.util.ObjectUtil;
import com.aaa.dao.UserDao;
import com.aaa.service.LoginService;
import com.aaa.service.UserService;
import com.aaa.util.MyTools;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2022/6/25 15:41
 * @description：
 * @modified By：
 * @version:
 */
@Service
public class LoginServiceImpl implements LoginService {
    @Autowired
    UserService userService;
    @Autowired
    UserDao userDao;
    @Override
    public boolean checkUser(Map<String, Object> map) {
        //缓存明文密码，临时用
        String  passwordTemp=map.get("password").toString();
        //1、根据用户名查询用户的所有信息,  去掉密码的key
       // map.remove("searchPassword");
        //根据用户名查询出所有的数据
        List<Map<String, Object>> mapList = userService.findAllUserByName(map);
        if(null!=mapList&&mapList.size()>0){
            Map<String, Object> user = mapList.get(0);
            //2、根据查询出来的盐值和传入的明文密码加密产生新密码，
            String salt=user.get("salt").toString();

            //3、校验查询出来的密文和新密码是否一致
            //获取数据库中的密文
            String passwordDateBase = user.get("password").toString();
            //根据登录页面重新加密生成的密文
            String passwordNew= MyTools.makePasswordSalt(passwordTemp,salt);
            if(passwordDateBase.equals(passwordNew)){
                return true;
            }
        }

        return false;
    }

    /**
     * @create by: Teacher陈（86521760@qq.com）
     * @description: 根据用户名查询一行数据
     * @create time: 2022/6/27 9:45
     * @param map
     * @return  Map<String, Object>
     */
    @Override
    public Map<String, Object> findUserInfoByName(Map map) {
        List<Map<String, Object>> mapList = userDao.findAllUserByName(map);
        if(ObjectUtil.isNotEmpty(mapList)){
            return mapList.get(0);
        }
        return null;
    }
}
